for _ in range(int(input())):
n, x = map(int, input().split())
nums = list(map(int, input().split()))
o = sorted(nums)
l = {x:0 for x in o}
for item in o:
l[item] += 1
for item in o:
if l.get(item*x) and l.get(item*x) > 0 and l.get(item):
l[item] -= 1
l[item*x]-=1
print(sum(l.values()))
#include<bits/stdc++.h>
#define IOS ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);
using namespace std;
#define int long long
#define ll long long
signed main(){
IOS;
int t;
cin>>t;
while(t--)
{
int n,x;
cin>>n>>x;
int a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
for(int i=0;i<n;i++)
{
if(a[i]!=-1)
{
int ind=lower_bound(a,a+n,a[i]*x)-a;
if(a[ind]==a[i]*x)
{
a[i]=-1;
a[ind]=-1;
}
}
}
int count=0;
for(int i=0;i<n;i++)
{
if(a[i]==-1)
{
count++;
}
}
cout<<(n-count)<<endl;
}
return 0;
}
1367B - Even Array | 136A - Presents |
1450A - Avoid Trygub | 327A - Flipping Game |
411A - Password Check | 1520C - Not Adjacent Matrix |
1538B - Friends and Candies | 580A - Kefa and First Steps |
1038B - Non-Coprime Partition | 43A - Football |
50A - Domino piling | 479A - Expression |
1480A - Yet Another String Game | 1216C - White Sheet |
1648A - Weird Sum | 427A - Police Recruits |
535A - Tavas and Nafas | 581A - Vasya the Hipster |
1537B - Bad Boy | 1406B - Maximum Product |
507B - Amr and Pins | 379A - New Year Candles |
1154A - Restoring Three Numbers | 750A - New Year and Hurry |
705A - Hulk | 492B - Vanya and Lanterns |
1374C - Move Brackets | 1476A - K-divisible Sum |
1333A - Little Artem | 432D - Prefixes and Suffixes |